#ifndef MINISHELL_H_INCLUDED
#define MINISHELL_H_INCLUDED

#include <stdio.h>
#include <stdlib.h>
#include <utmp.h>
#include <string.h>
#include <sys/types.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <stdarg.h>
#include <unistd.h>
#include <dirent.h>
#include <sys/stat.h>

#define MAX_NUMERO_PARAMETRO_COMANDO 20
#define MAX_TAMANO_PARAMETRO 255
#define MAX_LONGITUD_COMANDO 255
#define MAX_TAMANO_BUFFER 255
#define MAX_TAMANO_RESULTADO 255


void mi_pwd();
void resultado_pwd(char *str);

int mi_cd (const char *path);

int mi_mkdir (const char *pathname, mode_t mode);

int mi_rmdir (const char *pathname);

void mi_ls(char **parametros, int numero_parametro);
void listar_directorio_actual(DIR *dir,struct dirent *midirent);
void listar_directorio_con_parametro_l(char *path, DIR *dir, struct dirent *mi_dirent);
void listar_directorio(char *path, DIR *dir, struct dirent *mi_dirent);

int mi_chmod (char **parametros, int numero_parametro);

void mi_help();
char mostrar_no_mostrar_menu();

void mi_clear();

void visualizar_parametros(char **str,int numero_elemento);

void asignar_memoria_array(char *str,int numero_elemento);
void liberar_memoria_array(char *str);
void asignar_memoria_tabla(char **parametros, int numero_file, int numero_columna);
void liberar_memoria_tabla(char **str, int numero_fila);

void procesar_comando(char* comando, char **parametros,int indice_parametro);
#endif // MINISHELL_H_INCLUDED
